900
|
How do I get ride of the separator items when the user performs grouping
![](images/exgridq900.png)
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int _Item)
{
;
exgrid1.Items().ItemDividerLine(_Item,0/*EmptyLine*/);
}
public void init()
{
COM com_Column,com_rs;
anytype rs,var_Column;
;
super();
exgrid1.BeginUpdate();
exgrid1.ColumnAutoResize(false);
// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
exgrid1.DataSource(rs);
exgrid1.SortBarVisible(true);
exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
exgrid1.AllowGroupBy(true);
var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
com_Column.SortOrder(1/*SortAscending*/);
exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
exgrid1.EndUpdate();
}
|
899
|
How do I split a cell in three parts, and having a radio button in each of them
![](images/exgridq899.png)
// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int _Item,int _ColIndex)
{
;
print( exgrid1.Items().CellCaption(_Item,_ColIndex) );
}
// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
void onEvent_Click()
{
int h;
;
h = exgrid1.ItemFromPoint(-1,-1,c,hit);
exgrid1.Items().CellState(h,c,1);
}
public void init()
{
COM com_Items;
anytype var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
exgrid1.FullRowSelect(0/*exColumnSel*/);
exgrid1.SelBackColor(exgrid1.BackColor());
exgrid1.SelForeColor(exgrid1.ForeColor());
exgrid1.DrawGridLines(-1/*exAllLines*/);
exgrid1.ShowFocusRect(false);
COM::createFromVariant(exgrid1.Columns().Add("Default")).Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("entire");
h = com_Items.AddItem("Radio <b>1");
com_Items.CellRadioGroup(h,COMVariant::createFromInt(0),100);
com_Items.CellHasRadioButton(h,COMVariant::createFromInt(0),true);
com_Items.CellState(h,COMVariant::createFromInt(0),1);
h = com_Items.SplitCell(h,COMVariant::createFromInt(0));
com_Items.CellValue(COMVariant::createFromInt(0),h,"Radio <b>2");
com_Items.CellRadioGroup(COMVariant::createFromInt(0),h,100);
com_Items.CellHasRadioButton(COMVariant::createFromInt(0),h,true);
h = com_Items.SplitCell(COMVariant::createFromInt(0),h);
com_Items.CellValue(COMVariant::createFromInt(0),h,"Radio <b>3");
com_Items.CellRadioGroup(COMVariant::createFromInt(0),h,100);
com_Items.CellHasRadioButton(COMVariant::createFromInt(0),h,true);
h = com_Items.AddItem("entire");
exgrid1.EndUpdate();
}
|
898
|
Does your grid include a row indicator , like an arrow, bullet
![](images/exgridq898.png)
// SelectionChanged event - Fired after a new item has been selected.
void onEvent_SelectionChanged()
{
COM com_Column,com_Items;
anytype var_Column,var_Items;
int hFocusItem;
;
var_Items = exgrid1.Items(); com_Items = var_Items;
hFocusItem = com_Items.FocusItem();
com_Items.CellValue(exgrid1.Columns().Item("active").Data(),"active","");
com_Items.CellValue(hFocusItem,"active","<c><font symbol>·");
com_Items.CellVAlignment(hFocusItem,"active",2/*exBottom*/);
var_Column = COM::createFromObject(exgrid1.Columns()).Item("active"); com_Column = var_Column;
com_Column.Data(hFocusItem);
}
public void init()
{
COM com_Column,com_Items,com_rs;
anytype rs,var_Column,var_Items;
int hFocusItem;
;
super();
exgrid1.BeginUpdate();
exgrid1.ColumnAutoResize(false);
// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
exgrid1.DataSource(rs);
exgrid1.ShowFocusRect(false);
exgrid1.ContinueColumnScroll(true);
exgrid1.ScrollBySingleLine(true);
exgrid1.AutoDrag(4112/*exAutoDragScrollOnShortTouch | exAutoDragScroll*/);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("")); com_Column = var_Column;
com_Column.Key("active");
com_Column.Position(0);
com_Column.AllowSizing(false);
com_Column.Width(12);
com_Column.Data(exgrid1.Items().FocusItem());
com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
exgrid1.CountLockedColumns(1);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.SelectItem(com_Items.NextVisibleItem(com_Items.FocusItem()),true);
exgrid1.EndUpdate();
}
|
897
|
How can I connect to a DBF file
public void init()
{
COM com_rs;
anytype rs;
;
super();
exgrid1.ColumnAutoResize(false);
exgrid1.ContinueColumnScroll(false);
// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
rs.Open("Select * From foxcode.DBF","Provider=vfpoledb;Data Source=C:\\Program Files\\Microsoft Visual FoxPro 9\\",3/*adOpenStatic*/,3/*adLockOptimistic*/);
exgrid1.DataSource(rs);
}
|
896
|
Does your control supports scrolling by touching the screen
![](images/exgridq896.png)
public void init()
{
COM com_rs;
anytype rs;
;
super();
exgrid1.ColumnAutoResize(false);
// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
exgrid1.DataSource(rs);
exgrid1.ContinueColumnScroll(true);
exgrid1.ScrollBySingleLine(true);
exgrid1.AutoDrag(4112/*exAutoDragScrollOnShortTouch | exAutoDragScroll*/);
}
|
895
|
How do I prevent showing the control's BackColorAlternate property on empty / non-items part of the control
![](images/exgridq895.png)
public void init()
{
COM com_Items;
anytype var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.BackColorAlternate(0x7ff0f0f0);
exgrid1.Columns().Add("Column");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("Item 1");
com_Items.AddItem("Item 2");
com_Items.AddItem("Item 3");
com_Items.AddItem("Item 4");
com_Items.AddItem("Item 5");
exgrid1.EndUpdate();
}
|
894
|
Is there any method for reading information from the root item for the current item...
![](images/exgridq894.png)
public void init()
{
COM com_Items;
anytype var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.LinesAtRoot(true);
exgrid1.SearchColumnIndex(0);
exgrid1.Columns().Add("Info");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.PathSeparator(" ; ");
com_Items.SelectItem(com_Items.InsertItem(com_Items.InsertItem(com_Items.InsertItem(com_Items.InsertItem(,,"Root"),,"Child"),,"Sub-Child"),,"Sub-Sub-Child"),true);
com_Items.ExpandItem(0,true);
print( com_Items.FullPath(com_Items.FocusItem()) );
exgrid1.EndUpdate();
}
|
893
|
How can I highlight items with a specified date
![](images/exgridq893.png)
public void init()
{
COM com_Column,com_Columns,com_ConditionalFormat,com_Editor,com_Items;
anytype var_Column,var_Columns,var_ConditionalFormat,var_Editor,var_Items;
;
super();
exgrid1.BeginUpdate();
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Tasks");
var_Column = COM::createFromVariant(com_Columns.Add("Date")); com_Column = var_Column;
com_Column.SortType(2/*SortDate*/);
var_Editor = COM::createFromObject(com_Column.Editor()); com_Editor = var_Editor;
com_Editor.EditType(4/*SpinType*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellValue(com_Items.AddItem("Task 1"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/13/2001",213)));
com_Items.CellValue(com_Items.AddItem("Task 2"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/14/2001",213)));
com_Items.CellValue(com_Items.AddItem("Task 2"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/15/2001",213)));
var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%1 = #12/14/2001#"); com_ConditionalFormat = var_ConditionalFormat;
com_ConditionalFormat.Bold(true);
exgrid1.EndUpdate();
}
|
892
|
Today date is shown, if we use the Column.FormatColumn and Editor.Option(exDateAllowNullDate) properties. What can be done
![](images/exgridq892.png)
public void init()
{
COM com_Column,com_Editor,com_Items;
anytype var_Column,var_Editor,var_Items;
str var_s;
;
super();
exgrid1.BeginUpdate();
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Date")); com_Column = var_Column;
var_s = "len(value) ? ( (longdate(date(value)) left 3) + ' ' + day(date(value)) + '/' + month(date(value)) + '/' + (year(date(value)) rig";
var_s = var_s + "ht 2) ) : '' )";
com_Column.FormatColumn(var_s);
var_Editor = com_Column.Editor(); com_Editor = var_Editor;
com_Editor.EditType(7/*DateType*/);
com_Editor.Option(14/*exDateAllowNullDate*/,COMVariant::createFromBoolean(true));
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem(COMVariant::createFromDate(str2Date("5/12/2012",213)));
com_Items.AddItem();
com_Items.AddItem(COMVariant::createFromDate(str2Date("5/14/2012",213)));
exgrid1.EndUpdate();
}
|
891
|
How can I add multiple values/columns on the same line/item/row
![](images/exgridq891.png)
// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int _Item,int _ColIndex,COMVariant /*variant*/ _NewValue)
{
;
exgrid1.Refresh();
}
public void init()
{
COM com_Columns,com_Editor,com_Items;
anytype var_Columns,var_Editor,var_Items;
int h,h1;
;
super();
exgrid1.BeginUpdate();
exgrid1.SortOnClick(0/*exNoSort*/);
exgrid1.LinesAtRoot(5/*exGroupLinesOutside*/);
exgrid1.Indent(13);
exgrid1.HeaderVisible(false);
exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Items");
var_Editor = COM::createFromObject(COM::createFromVariant(com_Columns.Add("Quantity"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(4/*SpinType*/);
var_Editor = COM::createFromObject(COM::createFromVariant(com_Columns.Add("Value"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(4/*SpinType*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("Items");
com_Items.CellValue(h,COMVariant::createFromInt(2),"sum(current,dir,dbl(%1)*dbl(%2))");
com_Items.CellValueFormat(h,COMVariant::createFromInt(2),4/*exTotalField*/);
com_Items.FormatCell(h,COMVariant::createFromInt(2),"`Total: `+ value");
com_Items.CellHAlignment(h,COMVariant::createFromInt(2),2/*RightAlignment*/);
com_Items.CellBold(h,COMVariant::createFromInt(2),true);
com_Items.CellEditorVisible(h,COMVariant::createFromInt(2),false);
com_Items.CellEditorVisible(h,COMVariant::createFromInt(1),false);
h1 = com_Items.InsertItem(h,,"Item 1");
com_Items.CellValue(h1,COMVariant::createFromInt(1),COMVariant::createFromInt(10));
com_Items.CellValue(h1,COMVariant::createFromInt(2),COMVariant::createFromInt(3));
h1 = com_Items.InsertItem(h,,"Item 2");
com_Items.CellValue(h1,COMVariant::createFromInt(1),COMVariant::createFromInt(20));
com_Items.CellValue(h1,COMVariant::createFromInt(2),COMVariant::createFromInt(4));
com_Items.ExpandItem(h,true);
exgrid1.EndUpdate();
}
|
890
|
Is there a syntax for conditional formatting of items, based on CellState/CellStateChange
![](images/exgridq890.png)
// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int _Item,int _ColIndex)
{
COM com_Items;
anytype var_Items;
;
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellValue(_Item,COMVariant::createFromInt(2),com_Items.CellState(_Item,COMVariant::createFromInt(0)));
}
public void init()
{
COM com_Column,com_ConditionalFormat,com_Items;
anytype var_Column,var_ConditionalFormat,var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
exgrid1.ShowFocusRect(false);
exgrid1.SelBackMode(1/*exTransparent*/);
var_ConditionalFormat = COM::createFromObject(exgrid1.ConditionalFormats()).Add("%2 != 0"); com_ConditionalFormat = var_ConditionalFormat;
com_ConditionalFormat.Bold(true);
com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,0,0));
com_ConditionalFormat.ApplyTo(-1/*exFormatToItems*/);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("")); com_Column = var_Column;
com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
com_Column.Width(16);
com_Column.AllowSizing(false);
exgrid1.Columns().Add("Information");
COM::createFromVariant(exgrid1.Columns().Add("Hidden")).Visible(false);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellValue(com_Items.AddItem(""),COMVariant::createFromInt(1),"This is a bit of text associated");
h = com_Items.AddItem("");
com_Items.CellValue(h,COMVariant::createFromInt(1),"This is a bit of text associated");
com_Items.CellState(h,COMVariant::createFromInt(0),1);
com_Items.CellValue(com_Items.AddItem(""),COMVariant::createFromInt(1),"This is a bit of text associated");
exgrid1.EndUpdate();
}
|
889
|
How do I programatically focus a cell
![](images/exgridq889.png)
// FocusChanged event - Occurs when a new cell is focused.
void onEvent_FocusChanged()
{
COM com_Items;
anytype var_Items;
;
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellBackColor(com_Items.FocusItem(),exgrid1.FocusColumnIndex(),WinApi::RGB2int(255,0,0));
}
public void init()
{
COM com_Columns,com_Items,com_Items1;
anytype var_Columns,var_Items,var_Items1;
;
super();
exgrid1.BeginUpdate();
exgrid1.SelForeColor(exgrid1.ForeColor());
exgrid1.SelBackColor(exgrid1.BackColor());
exgrid1.DrawGridLines(-2/*exRowLines*/);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Column1");
com_Columns.Add("Column2");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellValue(com_Items.AddItem("Cell 1.1"),COMVariant::createFromInt(1),"Cell 1.2");
com_Items.CellValue(com_Items.AddItem("Cell 2.1"),COMVariant::createFromInt(1),"Cell 2.2");
var_Items1 = exgrid1.Items(); com_Items1 = var_Items1;
com_Items1.SelectItem(com_Items1.ItemByIndex(1),true);
exgrid1.FocusColumnIndex(1);
exgrid1.EndUpdate();
}
|
888
|
How do I programatically focus a cell (excrd)
![](images/exgridq888.png)
// FocusChanged event - Occurs when a new cell is focused.
void onEvent_FocusChanged()
{
COM com_Items;
anytype var_Items;
;
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellBackColor(com_Items.FocusItem(),exgrid1.FocusColumnIndex(),WinApi::RGB2int(255,0,0));
}
public void init()
{
COM com_Column,com_Columns,com_Items,com_Items1;
anytype var_Column,var_Columns,var_Items,var_Items1;
int h;
;
super();
exgrid1.BeginUpdate();
exgrid1.SelForeColor(exgrid1.ForeColor());
exgrid1.SelBackColor(exgrid1.BackColor());
exgrid1.DrawGridLines(-2/*exRowLines*/);
exgrid1.DefaultItemHeight(36);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
COM::createFromVariant(com_Columns.Add("Column1")).Visible(false);
COM::createFromVariant(com_Columns.Add("Column2")).Visible(false);
COM::createFromVariant(com_Columns.Add("Column3")).Visible(false);
var_Column = COM::createFromVariant(com_Columns.Add("FormatLevel")); com_Column = var_Column;
com_Column.FormatLevel("(0/1),2");
com_Column.Def(32/*exCellFormatLevel*/,COMVariant::createFromStr(com_Column.FormatLevel()));
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("Cell 1.1");
com_Items.CellValue(h,COMVariant::createFromInt(1),"Cell 1.2");
com_Items.CellValue(h,COMVariant::createFromInt(2),"Cell 1.3");
h = com_Items.AddItem("Cell 2.1");
com_Items.CellValue(h,COMVariant::createFromInt(1),"Cell 2.2");
com_Items.CellValue(h,COMVariant::createFromInt(2),"Cell 2.3");
var_Items1 = exgrid1.Items(); com_Items1 = var_Items1;
com_Items1.SelectItem(com_Items1.ItemByIndex(1),true);
exgrid1.FocusColumnIndex(2);
exgrid1.EndUpdate();
}
|
887
|
How do I programmatically exclude items from the filter
![](images/exgridq887.png)
public void init()
{
COM com_Column,com_Column1,com_Items;
anytype var_Column,var_Column1,var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
com_Column.DisplayFilterButton(true);
com_Column.DisplayFilterPattern(false);
com_Column.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("Item 1");
com_Items.AddItem("Item 2");
com_Items.AddItem("Item 3");
com_Items.AddItem("Item 4");
var_Column1 = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
com_Column1.FilterType(752/*exFilterExclude | exFilter*/);
com_Column1.Filter("Item 1|Item 4");
exgrid1.ApplyFilter();
exgrid1.EndUpdate();
}
|
886
|
Using the property Column.FormatColumn I want to display numbers in the numeric format with no decimals - unless the value is NULL then I want to display a blank or empty
![](images/exgridq886.png)
public void init()
{
COM com_Columns,com_Items;
anytype var_Columns,var_Items;
;
super();
exgrid1.BeginUpdate();
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
COM::createFromVariant(com_Columns.Add("Format")).FormatColumn("len(value) ? (value format '0') : '' ");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem(COMVariant::createFromInt(10));
com_Items.AddItem();
com_Items.AddItem(COMVariant::createFromInt(-8));
exgrid1.EndUpdate();
}
|
885
|
How can I change the drop down filter background color
![](images/exgridq885.png)
public void init()
{
COM com_Column,com_Items;
anytype var_Column,var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
exgrid1.Background(26/*exBackColorFilter*/,WinApi::RGB2int(255,255,255));
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Items")); com_Column = var_Column;
com_Column.DisplayFilterButton(true);
com_Column.DisplayFilterPattern(false);
com_Column.FilterList(1315/*exShowFocusItem | exShowCheckBox | exSortItemsAsc | exLeafItems*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("Root 1");
com_Items.InsertItem(h,,"Child 1");
com_Items.InsertItem(h,,"Child 2");
com_Items.ExpandItem(h,true);
h = com_Items.AddItem("Root 2");
com_Items.InsertItem(h,,"Child 1");
com_Items.InsertItem(h,,"Child 2");
com_Items.InsertItem(h,,"Child 3");
com_Items.ExpandItem(h,true);
exgrid1.EndUpdate();
}
|
884
|
I am using AllowGroupBy property and calling the Column.SortOrder property groups by that column. Is it possible to prevent that, so I have a similar behavior like I click the column's header rather than dragging it to the control's GroupBy bar
![](images/exgridq884.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("First");
com_Columns.Add("Second");
com_Columns.Add("Third");
exgrid1.SortBarVisible(true);
exgrid1.SingleSort(false);
exgrid1.AllowGroupBy(true);
exgrid1.Layout("SingleSort = \"C0:1\";MultipleSort = \"C1:2 C2:1\"");
}
|
883
|
Calling programatically the Column.SortOrder property adds the column to the sort bar. Is it possible to prevent that, so I have a similar behavior like I click the column's header rather than dragging it to the control's Sort bar
![](images/exgridq883.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("First");
com_Columns.Add("Second");
com_Columns.Add("Third");
exgrid1.SortBarVisible(true);
exgrid1.SingleSort(false);
exgrid1.Layout("SingleSort = \"C0:1\"");
}
|
882
|
How do I restore/clear the HotBackColor/HotForeColor properties
![](images/exgridq882.png)
public void init()
{
COM com_Column,com_Column1,com_Items;
anytype var_Column,var_Column1,var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.HotBackColor(WinApi::RGB2int(0,0,255));
exgrid1.HotForeColor(WinApi::RGB2int(255,255,255));
COM::createFromVariant(exgrid1.Columns().Add("Value")).Visible(false);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("USD")); com_Column = var_Column;
com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
com_Column.FormatColumn("len(%0) ? ((0:=dbl(%0)) < 10 ? '<fgcolor=808080><font ;7>' : '<b>') + `USD `+ (=:0 format ``)");
var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("EUR")); com_Column1 = var_Column1;
com_Column1.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
com_Column1.FormatColumn("len(%0) ? ((0:=0.72*dbl(%0)) < 10 ? '<fgcolor=808080><font ;7>' : '<b>') + `EUR `+ (=:0 format ``)");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("1.23");
com_Items.AddItem("2.34");
com_Items.AddItem("9.94");
com_Items.AddItem("11.94");
com_Items.AddItem("1000");
exgrid1.HotBackColor(exgrid1.BackColor());
exgrid1.HotForeColor(exgrid1.ForeColor());
exgrid1.EndUpdate();
}
|
881
|
How do I format a column using a currency, and another column to another currency
![](images/exgridq881.png)
public void init()
{
COM com_Column,com_Column1,com_Items;
anytype var_Column,var_Column1,var_Items;
;
super();
COM::createFromVariant(exgrid1.Columns().Add("Value")).Visible(false);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("USD")); com_Column = var_Column;
com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
com_Column.FormatColumn("len(%0) ? ((0:=dbl(%0)) < 10 ? '<fgcolor=808080><font ;7>' : '<b>') + `USD `+ (=:0 format ``)");
var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("EUR")); com_Column1 = var_Column1;
com_Column1.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
com_Column1.FormatColumn("len(%0) ? ((0:=0.72*dbl(%0)) < 10 ? '<fgcolor=808080><font ;7>' : '<b>') + `EUR `+ (=:0 format ``)");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("1.23");
com_Items.AddItem("2.34");
com_Items.AddItem("9.94");
com_Items.AddItem("11.94");
com_Items.AddItem("1000");
}
|
880
|
How can I sort the columns to be displayed on the columns floating bar
![](images/exgridq880.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
exgrid1.ColumnAutoResize(false);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
COM::createFromVariant(com_Columns.Add("City")).Visible(false);
COM::createFromVariant(com_Columns.Add("Start")).Visible(false);
COM::createFromVariant(com_Columns.Add("End")).Visible(false);
exgrid1.ColumnsFloatBarVisible(true);
exgrid1.ColumnsFloatBarSortOrder(1/*SortAscending*/);
}
|
879
|
How can I get the column index and the row index of the active cell
![](images/exgridq879.png)
// FocusChanged event - Occurs when a new cell is focused.
void onEvent_FocusChanged()
{
COM com_Items;
anytype var_Items;
;
print( "Active/Focus-Column:" );
print( exgrid1.Columns().Item(exgrid1.FocusColumnIndex()).Caption() );
var_Items = exgrid1.Items(); com_Items = var_Items;
print( "Active/Focus-Row/Item:" );
print( com_Items.CellCaption(com_Items.FocusItem(),exgrid1.FocusColumnIndex()) );
}
public void init()
{
COM com_Columns,com_Editor,com_Items;
anytype var_Columns,var_Editor,var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
var_Editor = COM::createFromObject(COM::createFromVariant(com_Columns.Add("C1"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(1/*EditType*/);
var_Editor = COM::createFromObject(COM::createFromVariant(com_Columns.Add("C2"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(1/*EditType*/);
var_Editor = COM::createFromObject(COM::createFromVariant(com_Columns.Add("C3"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(1/*EditType*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem(COMVariant::createFromInt(1));
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(3));
h = com_Items.AddItem(COMVariant::createFromInt(3));
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(1));
com_Items.CellValue(h,COMVariant::createFromInt(2),COMVariant::createFromInt(2));
exgrid1.EndUpdate();
}
|
878
|
How can I add a vertical padding
![](images/exgridq878.png)
public void init()
{
COM com_Column,com_Items;
anytype var_Column,var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.DrawGridLines(-1/*exAllLines*/);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Padding")); com_Column = var_Column;
com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromBoolean(false));
com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(6));
com_Column.Def(49/*exCellPaddingRight*/,COMVariant::createFromInt(6));
com_Column.Def(50/*exCellPaddingTop*/,COMVariant::createFromInt(6));
com_Column.Def(51/*exCellPaddingBottom*/,COMVariant::createFromInt(6));
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("padding");
com_Items.AddItem("padding");
exgrid1.EndUpdate();
}
|
877
|
How can I set item's height individually for every item in the control and also have line breaks in the item caption
![](images/exgridq877.png)
public void init()
{
COM com_Column,com_Items;
anytype var_Column,var_Items;
int h;
;
super();
exgrid1.BackColorAlternate(WinApi::RGB2int(240,240,240));
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Lines")); com_Column = var_Column;
com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromBoolean(false));
exgrid1.ItemsAllowSizing(-1/*exResizeItem*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("Line 1<br>Line 2");
com_Items.ItemMinHeight(h,36);
com_Items.ItemHeight(h,com_Items.ItemMinHeight(h));
com_Items.ItemMaxHeight(h,com_Items.ItemMinHeight(h));
h = com_Items.AddItem("Line 1<br>Line 2");
com_Items.ItemMinHeight(h,48);
com_Items.ItemHeight(h,com_Items.ItemMinHeight(h));
com_Items.ItemMaxHeight(h,com_Items.ItemMinHeight(h));
h = com_Items.AddItem("Line 1<br>Line 2");
com_Items.ItemMinHeight(h,64);
com_Items.ItemHeight(h,com_Items.ItemMinHeight(h));
com_Items.ItemMaxHeight(h,com_Items.ItemMinHeight(h));
}
|
876
|
The mouse-cursor is shown over the tooltip. Is it possible somehow resolve this (method 2)
![](images/exgridq876.png)
// MouseMove event - Occurs when the user moves the mouse.
void onEvent_MouseMove(int _Button,int _Shift,int _X,int _Y)
{
;
exgrid1.ShowToolTip("This is bit of text that's shown when the user hovers the cell","Column",COMVariant::createFromInt(0),"+16","+16");
}
public void init()
{
COM com_Items;
anytype var_Items;
;
super();
exgrid1.Columns().Add("Column");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("tooltip");
}
|
875
|
The mouse-cursor is shown over the tooltip. Is it possible somehow resolve this (method 1)
// ToolTip event - Fired when the control prepares the object's tooltip.
void onEvent_ToolTip(int _Item,int _ColIndex,COMVariant /*bool*/ _Visible,COMVariant /*long*/ _X,COMVariant /*long*/ _Y,int _CX,int _CY)
{
;
_X = 0;
_Y = 0;
}
public void init()
{
COM com_Items;
anytype var_Items;
;
super();
exgrid1.Columns().Add("Column");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellToolTip(com_Items.AddItem("tooltip"),COMVariant::createFromInt(0),"This is bit of text that's shown when the user hovers the cell");
}
|
874
|
How can I add a MIN or MAX field (for date)
![](images/exgridq874.png)
public void init()
{
COM com_Items;
anytype var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
COM::createFromVariant(exgrid1.Columns().Add("Text")).SortType(2/*SortDate*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
com_Items.AddItem(COMVariant::createFromDate(str2Date("12/11/1998",213)));
com_Items.AddItem(COMVariant::createFromDate(str2Date("1/20/2014",213)));
com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2013",213)));
h = com_Items.AddItem("min(all,dir,date(%0))");
com_Items.SortableItem(h,false);
com_Items.CellValueFormat(h,COMVariant::createFromInt(0),4/*exTotalField*/);
com_Items.CellHAlignment(h,COMVariant::createFromInt(0),2/*RightAlignment*/);
com_Items.FormatCell(h,COMVariant::createFromInt(0),"'MIN: '+value");
h = com_Items.AddItem("max(all,dir,date(%0))");
com_Items.SortableItem(h,false);
com_Items.CellValueFormat(h,COMVariant::createFromInt(0),4/*exTotalField*/);
com_Items.CellHAlignment(h,COMVariant::createFromInt(0),2/*RightAlignment*/);
com_Items.FormatCell(h,COMVariant::createFromInt(0),"'MAX: '+value");
exgrid1.EndUpdate();
}
|
873
|
How can I add a MIN or MAX field (for text)
![](images/exgridq873.png)
public void init()
{
COM com_Items;
anytype var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
COM::createFromVariant(exgrid1.Columns().Add("Text")).SortType(0/*SortString*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("aha");
com_Items.AddItem("baba");
com_Items.AddItem("aaha");
com_Items.AddItem("aka");
h = com_Items.AddItem("min(all,dir,str(%0))");
com_Items.SortableItem(h,false);
com_Items.CellValueFormat(h,COMVariant::createFromInt(0),4/*exTotalField*/);
com_Items.CellHAlignment(h,COMVariant::createFromInt(0),2/*RightAlignment*/);
com_Items.FormatCell(h,COMVariant::createFromInt(0),"'MIN: '+value");
h = com_Items.AddItem("max(all,dir,str(%0))");
com_Items.SortableItem(h,false);
com_Items.CellValueFormat(h,COMVariant::createFromInt(0),4/*exTotalField*/);
com_Items.CellHAlignment(h,COMVariant::createFromInt(0),2/*RightAlignment*/);
com_Items.FormatCell(h,COMVariant::createFromInt(0),"'MAX: '+value");
exgrid1.EndUpdate();
}
|
872
|
How can I change the the focus rectangle
![](images/exgridq872.png)
public void init()
{
COM com_Column,com_Items;
anytype var_Column,var_Items;
str var_s;
;
super();
exgrid1.BeginUpdate();
var_s = "gBFLBCJwBAEHhEJAAEhABeEGACAADACAxRDgMQBQKAAzQFAYbBlBaERiGQYIJhUAIIRZGMQxXAcMQvDSKQJhGDAADENAxAJCI4DBIgZQNDwZQIkCY4ZDKHIfRzNAASJI";
var_s = var_s + "kTQPBKfYDGOLhSh6IJGRpPEIxdJMBr+fZ9QApeoYVj2J4eUCAFBxDRsZw8BiNAbkOi4Jp1f5nVJaFSxCKoSxbNqSBpGCzoJrKdI0R5JES2BAddTLBKzX7tHArLgSJ5dS";
var_s = var_s + "rLMrwSKcRR1HSbIDyGaMUiCSqGVjWNZ5FREM46AAGbDgMILEgOZpoYDFVTZTKFCS7I6Eb40CCbCyPJQAabgWo4KAAZThNi7QAua4bTr7HqibLAexaJDOc4HVSgMLlIYE";
var_s = var_s + "kIeg2iybAjDkfhMFuHY7mQT4xB0TBnFoUQ6i+cg2j2SIvHqVZIl8cB+BwTgPA4NRdjycg2FoHhuAMUZuHGUAwCECQUAaEYMHQHRHCGFRZEQAABO2AwRFCWQJAoGxECWT";
var_s = var_s + "BHkGBxpg8RhYBMbJbD+TBzByfwwAwCIOCWCQiGiJgogqYh4hYIQ/k2cx9gEYQAAiRgqgsYx4mYLIOiOCMjjCTA4iScw8mMOQWEaEZkGkDgpguUIYm4SITmUCQaDuExjg";
var_s = var_s + "kRhWhQJQ0A4ToVmWSQWFkAAljkdhiheZgZgoXIZCUWYaF2GgihmKhrg4JRJjYboVmaSIiHOHQnAkahph2ZYJmQAAxAwSQKESHwkFkKgoiAIxIHoPIimOOg2DiCgoiQJR";
var_s = var_s + "QTYQxwn8MgMgoMoPiaYoaGCfw4A4CJNAkOpcGQBCAg==";
exgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
exgrid1.Background(19/*exShowFocusRect*/,0x1000000);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column = var_Column;
com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(2));
com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
exgrid1.SelForeColor(exgrid1.ForeColor());
exgrid1.SelBackColor(exgrid1.BackColor());
exgrid1.DefaultItemHeight(22);
exgrid1.ShowFocusRect(true);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("");
com_Items.AddItem("");
exgrid1.EndUpdate();
}
|
871
|
Can each cell have their own dropdown lists that contain "different list item values" for each cell, not predefined for the entire column
![](images/exgridq871.png)
public void init()
{
COM com_Editor,com_Editor1,com_Editor2,com_Editor3,com_Items;
anytype var_Editor,var_Editor1,var_Editor2,var_Editor3,var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Column/Cell-Same")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(3/*DropDownListType*/);
com_Editor.AddItem(0,"Zero");
com_Editor.AddItem(1,"One");
com_Editor.AddItem(2,"Two");
var_Editor1 = COM::createFromVariant(exgrid1.Columns().Add("Column/Cell-Different")).Editor(); com_Editor1 = var_Editor1;
com_Editor1.EditType(1/*EditType*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem();
h = com_Items.AddItem(COMVariant::createFromInt(0));
var_Editor2 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor2 = var_Editor2;
com_Editor2.EditType(3/*DropDownListType*/);
com_Editor2.AddItem(3,"Three");
com_Editor2.AddItem(4,"Four");
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(3));
com_Items.AddItem();
h = com_Items.AddItem(COMVariant::createFromInt(0));
var_Editor3 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor3 = var_Editor3;
com_Editor3.EditType(6/*CheckListType*/);
com_Editor3.AddItem(1,"Single");
com_Editor3.AddItem(2,"Double");
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(3));
exgrid1.EndUpdate();
}
|
870
|
How can I specify just a few fonts in a FontType editor
![](images/exgridq870.png)
public void init()
{
COM com_Editor,com_Items;
anytype var_Editor,var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.DefaultItemHeight(22);
exgrid1.DrawGridLines(-2/*exRowLines*/);
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Fonts")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(10/*FontType*/);
com_Editor.ClearItems();
com_Editor.AddItem(0,"Calibri");
com_Editor.AddItem(1,"Arial");
com_Editor.AddItem(2,"Rockwell");
com_Editor.AddItem(3,"Tahoma");
com_Editor.SortItems(COMVariant::createFromBoolean(true));
com_Editor.DropDownRows(4);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("Tahoma");
exgrid1.EndUpdate();
}
|
869
|
How do you embed HTML options into the anchor click string
![](images/exgridq869.png)
// AnchorClick event - Occurs when an anchor element is clicked.
void onEvent_AnchorClick(str _AnchorID,str _Options)
{
;
print( _AnchorID );
print( _Options );
}
public void init()
{
COM com_Columns,com_Items;
anytype var_Columns,var_Items;
;
super();
exgrid1.BeginUpdate();
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
COM::createFromVariant(com_Columns.Add("Car")).Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("<a mazda_1;options for 1>Mazda <b>1</b></a>");
com_Items.AddItem("<a mazda_2;options for 2>Mazda <b>2</b></a>");
com_Items.AddItem("<a mazda_3;options for 3a>Mazda <b>3.a</b></a>");
com_Items.AddItem("<a mazda_3;options for 3b>Mazda <b>3.b</b></a>");
exgrid1.EndUpdate();
}
|
868
|
How do I add a checkbox column (method 2)
![](images/exgridq868.png)
// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int _Item,int _ColIndex)
{
;
print( "CheckBox Changed:" );
print( exgrid1.Items().CellState(_Item,_ColIndex) );
}
public void init()
{
COM com_Items;
anytype var_Items;
;
super();
exgrid1.BeginUpdate();
COM::createFromVariant(exgrid1.Columns().Add("Check")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellState(com_Items.AddItem("Check 1"),COMVariant::createFromInt(0),0);
com_Items.CellState(com_Items.AddItem("Check 2"),COMVariant::createFromInt(0),1);
com_Items.CellState(com_Items.AddItem("Check 3"),COMVariant::createFromInt(0),0);
com_Items.CellState(com_Items.AddItem("Check 4"),COMVariant::createFromInt(0),1);
exgrid1.EndUpdate();
}
|
867
|
How do I add a checkbox column (method 1)
![](images/exgridq867.png)
// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int _Item,int _ColIndex,COMVariant /*variant*/ _NewValue)
{
;
print( "CheckBox Changed:" );
print( _NewValue );
}
public void init()
{
COM com_Column,com_Editor,com_Items;
anytype var_Column,var_Editor,var_Items;
;
super();
exgrid1.BeginUpdate();
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Check")); com_Column = var_Column;
var_Editor = com_Column.Editor(); com_Editor = var_Editor;
com_Editor.EditType(19/*CheckValueType*/);
com_Editor.Option(17/*exCheckValue2*/,COMVariant::createFromInt(1));
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem(COMVariant::createFromInt(0));
com_Items.AddItem(COMVariant::createFromInt(1));
com_Items.AddItem(COMVariant::createFromInt(0));
com_Items.AddItem(COMVariant::createFromInt(1));
exgrid1.EndUpdate();
}
|
866
|
How do I change the progress bar's appearance
![](images/exgridq866.png)
public void init()
{
COM com_Appearance,com_Editor;
anytype var_Appearance,var_Editor;
;
super();
var_Appearance = exgrid1.VisualAppearance(); com_Appearance = var_Appearance;
com_Appearance.Add(1,"c:\\exontrol\\images\\normal.ebn");
com_Appearance.Add(2,"c:\\exontrol\\images\\pushed.ebn");
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Progress")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(13/*ProgressBarType*/);
com_Editor.Option(11/*exProgressBarBackColor*/,COMVariant::createFromInt(16777216));
com_Editor.Option(13/*exProgressBarMarkTicker*/,COMVariant::createFromInt(33554432));
exgrid1.Items().AddItem(COMVariant::createFromInt(33));
}
|
865
|
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 3)
![](images/exgridq865.png)
public void init()
{
COM com_Items;
anytype var_Items;
str var_s;
;
super();
exgrid1.BeginUpdate();
var_s = "gBFLBCJwBAEHhEJAEGg4BVEIQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQCWIAzATGYBRfIUEgjBM6ExwG78eg";
var_s = var_s + "BHp/ZpkACIJJAaRjHQdJxGKKMQB9DIhCZpeKhWgkKIJBzOEyBRC4ERBGqNGrsIgLEqWZpnWhaNpWXYTLyBN64LhuK46g53O6wLxvK6hEr2dJ/YBcIAOfghf4NQ7EMRxL";
var_s = var_s + "C8Mw3BDvYDkOAABAIgI=";
exgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
exgrid1.SelBackColor(0x1fffffe);
exgrid1.ShowFocusRect(false);
exgrid1.Columns().Add("Items");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.ItemBackColor(com_Items.AddItem("red"),WinApi::RGB2int(255,0,0));
com_Items.ItemBackColor(com_Items.AddItem("blue"),WinApi::RGB2int(0,0,255));
com_Items.ItemBackColor(com_Items.AddItem("green"),WinApi::RGB2int(0,255,0));
exgrid1.EndUpdate();
}
|
864
|
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 2)
![](images/exgridq864.png)
public void init()
{
COM com_Items;
anytype var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.SelBackMode(1/*exTransparent*/);
exgrid1.ShowFocusRect(false);
exgrid1.Columns().Add("Items");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.ItemBackColor(com_Items.AddItem("red"),WinApi::RGB2int(255,0,0));
com_Items.ItemBackColor(com_Items.AddItem("blue"),WinApi::RGB2int(0,0,255));
com_Items.ItemBackColor(com_Items.AddItem("green"),WinApi::RGB2int(0,255,0));
exgrid1.EndUpdate();
}
|
863
|
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 1)
![](images/exgridq863.png)
public void init()
{
COM com_Items;
anytype var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.SelBackColor(exgrid1.BackColor());
exgrid1.SelForeColor(exgrid1.ForeColor());
exgrid1.ShowFocusRect(true);
exgrid1.Columns().Add("Items");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.ItemBackColor(com_Items.AddItem("red"),WinApi::RGB2int(255,0,0));
com_Items.ItemBackColor(com_Items.AddItem("blue"),WinApi::RGB2int(0,0,255));
com_Items.ItemBackColor(com_Items.AddItem("green"),WinApi::RGB2int(0,255,0));
exgrid1.EndUpdate();
}
|
862
|
The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that
![](images/exgridq862.png)
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
void onEvent_BeforeExpandItem(int _Item,COMVariant /*variant*/ _Cancel)
{
;
print( "BeforeExpandItem" );
print( _Item );
exgrid1.Items().InsertItem(_Item,,"new child");
}
public void init()
{
COM com_Column,com_Columns,com_Items;
anytype var_Column,var_Columns,var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
var_Column = COM::createFromVariant(com_Columns.Add("Items")); com_Column = var_Column;
com_Column.DisplayFilterButton(true);
com_Column.FilterList(4/*exRootItems*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.ItemHasChildren(com_Items.InsertItem(,,"Group 1"),true);
com_Items.ItemHasChildren(com_Items.InsertItem(,,"Group 2"),true);
exgrid1.EndUpdate();
}
|
861
|
How can I change the shape of the line to be shown when user drag and drop data over the control, EBN
![](images/exgridq861.png)
// OLEStartDrag event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
public void init()
{
COM com_Items;
anytype var_Items;
;
super();
exgrid1.OLEDropMode(1/*exOLEDropManual*/);
exgrid1.VisualAppearance().Add(1,"C:\\Program Files\\Exontrol\\ExList\\Sample\\VB\\DragDrop\\insert_bottom.ebn");
exgrid1.Background(96/*exListOLEDropPosition*/,0x1000000);
exgrid1.Columns().Add("Default");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("Item 1");
com_Items.AddItem("Item 2");
}
|
860
|
How can I highlight the item from cursor when the user drag and drop data over the control
![](images/exgridq860.png)
// OLEStartDrag event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
public void init()
{
COM com_Items;
anytype var_Items;
;
super();
exgrid1.OLEDropMode(1/*exOLEDropManual*/);
exgrid1.Background(96/*exListOLEDropPosition*/,WinApi::RGB2int(1,0,0));
exgrid1.Columns().Add("Default");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("Item 1");
com_Items.AddItem("Item 2");
}
|
859
|
Is it possible to always show the editor for all cells at all times
![](images/exgridq859.png)
// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int _Item)
{
;
exgrid1.Items().CellEditorVisible(_Item,COMVariant::createFromInt(0),1/*exEditorVisible*/);
exgrid1.Items().CellEditorVisible(_Item,COMVariant::createFromInt(1),1/*exEditorVisible*/);
}
// EditOpen event - Occurs when the edit operation starts.
void onEvent_EditOpen()
{
COM com_Column,com_Editor,com_Items;
COMVariant v;
anytype var_Column,var_Editor,var_Items;
str c;
;
var_Items = exgrid1.Items(); com_Items = var_Items;
v = com_Items.CellValue(com_Items.FocusItem(),COMVariant::createFromInt(0));
c = com_Items.CellCaption(com_Items.FocusItem(),COMVariant::createFromInt(0));
var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
var_Editor = com_Column.Editor(); com_Editor = var_Editor;
com_Editor.ClearItems();
com_Editor.AddItem(v,c);
}
public void init()
{
COM com_Column,com_Editor,com_Editor1,com_Items;
COMVariant v;
anytype var_Column,var_Editor,var_Editor1,var_Items;
int h;
str c,var_s;
;
super();
exgrid1.BeginUpdate();
var_Column = COM::createFromVariant(exgrid1.Columns().Add("DropDownList")); com_Column = var_Column;
var_Editor = com_Column.Editor(); com_Editor = var_Editor;
com_Editor.EditType(3/*DropDownListType*/);
com_Editor.AddItem(1,"First");
com_Editor.AddItem(2,"Second");
com_Editor.AddItem(3,"Third");
exgrid1.DrawGridLines(-1/*exAllLines*/);
var_Editor1 = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("DropDownList-Related"))).Editor(); com_Editor1 = var_Editor1;
com_Editor1.EditType(3/*DropDownListType*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(1)),COMVariant::createFromInt(1),COMVariant::createFromInt(-1));
com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(2)),COMVariant::createFromInt(1),COMVariant::createFromInt(-1));
com_Items.CellValue(com_Items.AddItem(COMVariant::createFromInt(3)),COMVariant::createFromInt(1),COMVariant::createFromInt(-1));
com_Items.LockedItemCount(2/*exBottom*/,1);
h = com_Items.LockedItem(2/*exBottom*/,0);
com_Items.ItemDivider(h,0);
com_Items.ItemDividerLineAlignment(h,2/*DividerTop*/);
com_Items.CellEditorVisible(h,COMVariant::createFromInt(0),false);
com_Items.CellSingleLine(h,COMVariant::createFromInt(0),false);
com_Items.CellValueFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
var_s = "The drop down editor in the second column is filled during the <b>EditOpen event</b>, and the values are based on the selection ";
var_s = var_s + "on the first column.";
com_Items.CellValue(h,COMVariant::createFromInt(0),COMVariant::createFromStr(var_s));
exgrid1.EndUpdate();
}
|
858
|
How do I set a computated cell individually
![](images/exgridq858.png)
public void init()
{
COM com_Items;
anytype var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
exgrid1.Columns().Add("Number");
exgrid1.Columns().Add("Format");
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("1.23");
com_Items.CellValueFormat(h,COMVariant::createFromInt(1),3/*exComputedField | exHTML*/);
com_Items.CellValue(h,COMVariant::createFromInt(1),"2 * %0 + ` <font ;6><fgcolor=808080>(2 * Number)`");
h = com_Items.AddItem("1.23");
com_Items.CellValueFormat(h,COMVariant::createFromInt(1),3/*exComputedField | exHTML*/);
com_Items.CellValue(h,COMVariant::createFromInt(1),"3 * %0 + ` <font ;6><fgcolor=808080>(3 * Number)`");
h = com_Items.AddItem("1.23");
com_Items.CellValueFormat(h,COMVariant::createFromInt(1),3/*exComputedField | exHTML*/);
com_Items.CellValue(h,COMVariant::createFromInt(1),"currency(%0) + ` <font ;6><fgcolor=808080>( Currency(Number) )`");
exgrid1.EndUpdate();
}
|
857
|
Is it possible to assign a different editor for some cells
![](images/exgridq857.png)
public void init()
{
COM com_Editor,com_Editor1,com_Editor2,com_Items;
anytype var_Editor,var_Editor1,var_Editor2,var_Items;
int h;
;
super();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Column - DropDownList")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(3/*DropDownListType*/);
com_Editor.AddItem(1,"First item");
com_Editor.AddItem(2,"Second item");
com_Editor.AddItem(3,"Third item");
COM::createFromVariant(exgrid1.Columns().Add("Cell - DropDownList")).Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem(COMVariant::createFromInt(1));
var_Editor1 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor1 = var_Editor1;
com_Editor1.EditType(3/*DropDownListType*/);
com_Editor1.AddItem(1,"<b>First</b> item");
com_Editor1.AddItem(2,"<b>Second</b> item");
com_Editor1.AddItem(3,"<b>Third</b> item");
com_Editor1.AddItem(4,"<b>Forth</b> item");
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
h = com_Items.AddItem(COMVariant::createFromInt(2));
var_Editor2 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor2 = var_Editor2;
com_Editor2.EditType(3/*DropDownListType*/);
com_Editor2.AddItem(1,"<b>Aka First</b> item");
com_Editor2.AddItem(2,"<b>Aka Second</b> item");
com_Editor2.AddItem(3,"<b>Aka Third</b> item");
com_Editor2.AddItem(4,"<b>Aka Forth</b> item");
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
}
|
856
|
Is it possible to define the keys of the drop down values to be strings rather than numeric values
![](images/exgridq856.png)
// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int _Item,int _ColIndex,COMVariant /*variant*/ _NewValue)
{
;
print( "NewValue is" );
print( _NewValue );
}
public void init()
{
COM com_Editor,com_Editor1,com_Items;
anytype var_Editor,var_Editor1,var_Items;
;
super();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("DropDownList-String")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(3/*DropDownListType*/);
com_Editor.AddItem(1,"NYC|New York City");
com_Editor.AddItem(2,"CJN|Cluj Napoca");
var_Editor1 = COM::createFromVariant(exgrid1.Columns().Add("DropDownList-Numeric")).Editor(); com_Editor1 = var_Editor1;
com_Editor1.EditType(3/*DropDownListType*/);
com_Editor1.AddItem(1,"New York City");
com_Editor1.AddItem(2,"Cluj Napoca");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellValue(com_Items.AddItem("NYC"),COMVariant::createFromInt(1),COMVariant::createFromInt(2));
}
|
855
|
The Change event gets me the today date. How can I find what user typed
![](images/exgridq855.png)
// Change event - Occurs when the user changes the cell's content.
void onEvent_Change(int _Item,int _ColIndex,COMVariant /*variant*/ _NewValue)
{
;
print( "NewValue:" );
print( _NewValue );
print( "EditingValue:" );
print( exgrid1.EditingText() );
}
public void init()
{
COM com_Editor;
anytype var_Editor;
;
super();
exgrid1.BeginUpdate();
var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("Edit"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(7/*DateType*/);
exgrid1.Items().AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
exgrid1.EndUpdate();
}
|
854
|
I have an edit field, when going to edit mode, the rightmost part is shown. Is it possible to show the left part instead
![](images/exgridq854.png)
public void init()
{
COM com_Column,com_Editor,com_Items;
anytype var_Column,var_Editor,var_Items;
;
super();
exgrid1.BeginUpdate();
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Edit")); com_Column = var_Column;
com_Column.Width(64);
com_Column.AllowSizing(false);
var_Editor = com_Column.Editor(); com_Editor = var_Editor;
com_Editor.EditType(8/*MaskType*/);
com_Editor.Mask(";;;rich");
exgrid1.Columns().Add("Empty");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("This is a bit ot long text");
com_Items.AddItem("");
exgrid1.EndUpdate();
}
|
853
|
I have a drop down field, the control shows the rightmost part of the selected caption. Is it possible to show the left part
![](images/exgridq853.png)
public void init()
{
COM com_Column,com_Column1,com_Editor,com_Editor1,com_Editor2,com_Editor3,com_Items;
anytype var_Column,var_Column1,var_Editor,var_Editor1,var_Editor2,var_Editor3,var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
var_Column = COM::createFromVariant(exgrid1.Columns().Add("DropDown")); com_Column = var_Column;
com_Column.Width(64);
com_Column.AllowSizing(false);
var_Editor = com_Column.Editor(); com_Editor = var_Editor;
com_Editor.DropDownAlignment(32);
com_Editor.EditType(2/*DropDownType*/);
com_Editor.AddItem(1,"First item. This is a bit ot long text");
com_Editor.AddItem(2,"Second item. This is a bit ot long text");
com_Editor.AddItem(3,"Third item. This is a bit ot long text");
com_Editor.Mask(";;;rich");
var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("PickEdit")); com_Column1 = var_Column1;
com_Column1.Width(64);
com_Column1.AllowSizing(false);
var_Editor1 = com_Column1.Editor(); com_Editor1 = var_Editor1;
com_Editor1.DropDownAlignment(32);
com_Editor1.EditType(14/*PickEditType*/);
com_Editor1.AddItem(1,"First item. This is a bit ot long text");
com_Editor1.AddItem(2,"Second item. This is a bit ot long text");
com_Editor1.AddItem(3,"Third item. This is a bit ot long text");
com_Editor1.Mask(";;;rich");
exgrid1.Columns().Add("Empty");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellValue(com_Items.AddItem("First item. This is a bit ot long text"),COMVariant::createFromInt(1),"Second item. This is a bit ot long text");
h = com_Items.AddItem("First item. This is a bit ot long text");
var_Editor2 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor2 = var_Editor2;
com_Editor2.DropDownAlignment(32);
com_Editor2.EditType(2/*DropDownType*/);
com_Editor2.AddItem(1,"First item. This is a bit ot long text");
com_Editor2.AddItem(2,"Second item. This is a bit ot long text");
com_Editor2.AddItem(3,"Third item. This is a bit ot long text");
com_Items.CellValue(h,COMVariant::createFromInt(1),"Second item. This is a bit ot long text");
var_Editor3 = com_Items.CellEditor(h,COMVariant::createFromInt(1)); com_Editor3 = var_Editor3;
com_Editor3.DropDownAlignment(32);
com_Editor3.EditType(14/*PickEditType*/);
com_Editor3.AddItem(1,"First item. This is a bit ot long text");
com_Editor3.AddItem(2,"Second item. This is a bit ot long text");
com_Editor3.AddItem(3,"Third item. This is a bit ot long text");
exgrid1.EndUpdate();
}
|
852
|
Is there a property for the back color of the dropdown field
![](images/exgridq852.png)
public void init()
{
COM com_Editor;
anytype var_Editor;
;
super();
exgrid1.BeginUpdate();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Date")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(7/*DateType*/);
com_Editor.Option(55/*exDropDownBackColor*/,COMVariant::createFromInt(15790320));
com_Editor.Option(56/*exDropDownForeColor*/,COMVariant::createFromInt(65793));
exgrid1.Items().AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
exgrid1.EndUpdate();
}
|
851
|
Is it possible to change a back color of the field/cell when it takes a focus
![](images/exgridq851.png)
// EditClose event - Occurs when the edit operation ends.
void onEvent_EditClose()
{
COM com_Items;
anytype var_Items;
;
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.ClearCellBackColor(com_Items.FocusItem(),exgrid1.FocusColumnIndex());
}
// EditOpen event - Occurs when the edit operation starts.
void onEvent_EditOpen()
{
COM com_Items,com_Items1;
anytype var_Items,var_Items1;
;
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellBackColor(com_Items.FocusItem(),exgrid1.FocusColumnIndex(),WinApi::RGB2int(255,0,0));
var_Items1 = exgrid1.Items(); com_Items1 = var_Items1;
com_Items1.CellValue(com_Items1.FocusItem(),exgrid1.FocusColumnIndex(),exgrid1.Items().CellValue(exgrid1.Items().FocusItem(),exgrid1.FocusColumnIndex()));
}
public void init()
{
COM com_Editor,com_Items,com_Items1;
anytype var_Editor,var_Items,var_Items1;
;
super();
exgrid1.FullRowSelect(0/*exColumnSel*/);
var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("C1"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(1/*EditType*/);
var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("C2"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(1/*EditType*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellValue(com_Items.AddItem("v1"),COMVariant::createFromInt(1),"v2");
com_Items.CellValue(com_Items.AddItem("v3"),COMVariant::createFromInt(1),"v4");
}
|
850
|
How can I display the current date mask, but still allow empty values
![](images/exgridq850.png)
public void init()
{
COM com_Editor,com_Items;
anytype var_Editor,var_Items;
str var_s;
;
super();
exgrid1.BeginUpdate();
exgrid1.CauseValidateValue(true);
exgrid1.FullRowSelect(0/*exColumnSel*/);
exgrid1.DrawGridLines(-2/*exRowLines*/);
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Date")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(7/*DateType*/);
var_s = "!99/99/9999;1;;empty=1,validateas=1,invalid=Invalid date\\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,";
var_s = var_s + "select=4,overtype";
com_Editor.Mask(var_s);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem();
com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
com_Items.AddItem();
exgrid1.EndUpdate();
}
|
849
|
How can I align the days in a DateType editor
![](images/exgridq849.png)
public void init()
{
COM com_Editor,com_Editor1,com_Editor2,com_Editor3,com_Editor4,com_Editor5,com_Items;
anytype var_Editor,var_Editor1,var_Editor2,var_Editor3,var_Editor4,var_Editor5,var_Items;
;
super();
exgrid1.Columns().Add("DropDown");
var_Items = exgrid1.Items(); com_Items = var_Items;
var_Editor = com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213))),COMVariant::createFromInt(0)); com_Editor = var_Editor;
com_Editor.EditType(7/*DateType*/);
com_Editor.DropDownAlignment(2/*RightAlignment*/);
var_Editor1 = com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213))),COMVariant::createFromInt(0)); com_Editor1 = var_Editor1;
com_Editor1.EditType(7/*DateType*/);
com_Editor1.DropDownAlignment(1/*CenterAlignment*/);
var_Editor2 = com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213))),COMVariant::createFromInt(0)); com_Editor2 = var_Editor2;
com_Editor2.EditType(7/*DateType*/);
com_Editor2.DropDownAlignment(0/*LeftAlignment*/);
var_Editor3 = com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213))),COMVariant::createFromInt(0)); com_Editor3 = var_Editor3;
com_Editor3.EditType(7/*DateType*/);
com_Editor3.DropDownAlignment(32);
var_Editor4 = com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213))),COMVariant::createFromInt(0)); com_Editor4 = var_Editor4;
com_Editor4.EditType(7/*DateType*/);
com_Editor4.DropDownAlignment(33/*0x21 | CenterAlignment*/);
var_Editor5 = com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213))),COMVariant::createFromInt(0)); com_Editor5 = var_Editor5;
com_Editor5.EditType(7/*DateType*/);
com_Editor5.DropDownAlignment(34/*0x22 | RightAlignment*/);
}
|
848
|
How can I align the drop down portion rather the inside captions
![](images/exgridq848.png)
public void init()
{
COM com_Editor,com_Editor1,com_Items;
anytype var_Editor,var_Editor1,var_Items;
;
super();
var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("DropDown"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(7/*DateType*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
var_Editor = com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213))),COMVariant::createFromInt(0)); com_Editor = var_Editor;
com_Editor.EditType(7/*DateType*/);
com_Editor.DropDownAlignment(32);
var_Editor1 = com_Items.CellEditor(com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213))),COMVariant::createFromInt(0)); com_Editor1 = var_Editor1;
com_Editor1.EditType(7/*DateType*/);
com_Editor1.DropDownAlignment(16);
com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
}
|
847
|
Is it possible to show a message that the field is empty
![](images/exgridq847.png)
public void init()
{
COM com_Column,com_Editor;
anytype var_Column,var_Editor;
;
super();
exgrid1.DrawGridLines(-2/*exRowLines*/);
exgrid1.FullRowSelect(0/*exColumnSel*/);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Float")); com_Column = var_Column;
var_Editor = com_Column.Editor(); com_Editor = var_Editor;
com_Editor.EditType(8/*MaskType*/);
com_Editor.Mask(";;;float,digits=0,grouping=,invalid=empty,warning=invalid character");
exgrid1.Items().AddItem(COMVariant::createFromInt(192278));
exgrid1.Items().AddItem(COMVariant::createFromInt(1000));
}
|
846
|
How can I mask a date
![](images/exgridq846.png)
public void init()
{
COM com_Editor,com_Editor1,com_Editor2,com_Editor3,com_Editor4,com_Editor5,com_Editor6,com_Editor7,com_Editor8,com_Items;
anytype var_Editor,var_Editor1,var_Editor2,var_Editor3,var_Editor4,var_Editor5,var_Editor6,var_Editor7,var_Editor8,var_Items;
int h;
str var_s,var_s1,var_s2,var_s3,var_s4,var_s5,var_s6,var_s7,var_s8;
;
super();
exgrid1.BeginUpdate();
exgrid1.CauseValidateValue(true);
exgrid1.FullRowSelect(0/*exColumnSel*/);
exgrid1.DrawGridLines(-2/*exRowLines*/);
exgrid1.Columns().Add("Date");
exgrid1.Columns().Add("Mask");
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
var_Editor = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor = var_Editor;
com_Editor.EditType(7/*DateType*/);
var_s = "{1,12}/{1,31}/{1950,2050};1;;select=1,warning=Invalid character!,invalid=Invalid date\\, for the input mask <br><b>'<%mask%>'</b>";
var_s = var_s + "!,validateas=1";
com_Editor.Mask(var_s);
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromStr(com_Items.CellEditor(h,COMVariant::createFromInt(0)).Mask()));
h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
var_Editor1 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor1 = var_Editor1;
com_Editor1.EditType(7/*DateType*/);
var_s1 = "!99/99/9999;1;;empty,validateas=1,invalid=Invalid date\\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,se";
var_s1 = var_s1 + "lect=4,overtype";
com_Editor1.Mask(var_s1);
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromStr(com_Items.CellEditor(h,COMVariant::createFromInt(0)).Mask()));
h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
var_Editor2 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor2 = var_Editor2;
com_Editor2.EditType(7/*DateType*/);
var_s2 = "!99/99/9999;;;empty,validateas=1,invalid=Invalid date\\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,sel";
var_s2 = var_s2 + "ect=4,overtype";
com_Editor2.Mask(var_s2);
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromStr(com_Items.CellEditor(h,COMVariant::createFromInt(0)).Mask()));
h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
var_Editor3 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor3 = var_Editor3;
com_Editor3.EditType(7/*DateType*/);
var_s3 = "!99/99/9999;; ;select=4,overtype,empty,warning=Invalid character!,invalid=Invalid date\\, for the input mask <br><b>'<%mask%>'</b";
var_s3 = var_s3 + ">!,validateas=1";
com_Editor3.Mask(var_s3);
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromStr(com_Items.CellEditor(h,COMVariant::createFromInt(0)).Mask()));
h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
var_Editor4 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor4 = var_Editor4;
com_Editor4.EditType(7/*DateType*/);
var_s4 = "![0-9 ][0-9 ]/[0-9 ][0-9 ]/[0-9 ][0-9 ][0-9 ][0-9 ];1;;empty,validateas=1,invalid=Invalid date\\, for the input mask <br><b>'<%ma";
var_s4 = var_s4 + "sk%>'</b>!,warning=Invalid character!,select=4,leading= ";
com_Editor4.Mask(var_s4);
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromStr(com_Items.CellEditor(h,COMVariant::createFromInt(0)).Mask()));
h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
com_Items.FormatCell(h,COMVariant::createFromInt(0),"len(value) ? shortdateF(value) : ``");
var_Editor5 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor5 = var_Editor5;
com_Editor5.EditType(7/*DateType*/);
var_s5 = "!99/99/9999;1;;empty,validateas=1,invalid=Invalid date\\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,se";
var_s5 = var_s5 + "lect=4,overtype,leading";
com_Editor5.Mask(var_s5);
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromStr(com_Items.CellEditor(h,COMVariant::createFromInt(0)).Mask()));
h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
com_Items.FormatCell(h,COMVariant::createFromInt(0),"len(value) ? shortdateF(value) : ``");
var_Editor6 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor6 = var_Editor6;
com_Editor6.EditType(7/*DateType*/);
var_s6 = "!00/00/0000;1;;empty,validateas=1,invalid=Invalid date\\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,se";
var_s6 = var_s6 + "lect=4,overtype,leading";
com_Editor6.Mask(var_s6);
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromStr(com_Items.CellEditor(h,COMVariant::createFromInt(0)).Mask()));
h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
com_Items.FormatCell(h,COMVariant::createFromInt(0),"len(value) ? shortdateF(value) : ``");
var_Editor7 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor7 = var_Editor7;
com_Editor7.EditType(7/*DateType*/);
var_s7 = "!00/00/0000;;0;empty,validateas=1,invalid=Invalid date\\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,se";
var_s7 = var_s7 + "lect=4,overtype";
com_Editor7.Mask(var_s7);
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromStr(com_Items.CellEditor(h,COMVariant::createFromInt(0)).Mask()));
h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/1/2001",213)));
com_Items.FormatCell(h,COMVariant::createFromInt(0),"len(value) ? shortdateF(value) : ``");
var_Editor8 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor8 = var_Editor8;
com_Editor8.EditType(7/*DateType*/);
var_s8 = "!00/00/0000;;;empty,validateas=1,invalid=Invalid date\\, for the input mask <br><b>'<%mask%>'</b>!,warning=Invalid character!,sel";
var_s8 = var_s8 + "ect=1,overtype";
com_Editor8.Mask(var_s8);
com_Items.CellValue(h,COMVariant::createFromInt(1),COMVariant::createFromStr(com_Items.CellEditor(h,COMVariant::createFromInt(0)).Mask()));
exgrid1.EndUpdate();
}
|
845
|
How can I display and edit an integer number to show grouping digits too ( no decimals)
![](images/exgridq845.png)
public void init()
{
COM com_Column,com_Editor;
anytype var_Column,var_Editor;
;
super();
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Float")); com_Column = var_Column;
com_Column.FormatColumn("value format `0`");
var_Editor = com_Column.Editor(); com_Editor = var_Editor;
com_Editor.EditType(8/*MaskType*/);
com_Editor.Mask(";;;float,digits=0");
exgrid1.Items().AddItem(COMVariant::createFromInt(192278));
}
|
844
|
How can I display and edit a float number to show grouping digits too
![](images/exgridq844.png)
public void init()
{
COM com_Column,com_Editor;
anytype var_Column,var_Editor;
;
super();
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Float")); com_Column = var_Column;
com_Column.FormatColumn("value format ``");
var_Editor = com_Column.Editor(); com_Editor = var_Editor;
com_Editor.EditType(8/*MaskType*/);
com_Editor.Mask(";;;float");
exgrid1.Items().AddItem(COMVariant::createFromInt(192278));
}
|
843
|
How can I mask a phone number
![](images/exgridq843.png)
public void init()
{
COM com_Editor,com_Editor1,com_Editor2,com_Editor3,com_Items;
anytype var_Editor,var_Editor1,var_Editor2,var_Editor3,var_Items;
int h;
str var_s;
;
super();
exgrid1.CauseValidateValue(true);
exgrid1.DrawGridLines(-2/*exRowLines*/);
exgrid1.FullRowSelect(0/*exColumnSel*/);
var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("Phone"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(8/*MaskType*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem();
var_Editor = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor = var_Editor;
com_Editor.EditType(8/*MaskType*/);
var_s = "!(999) 000 0000;1;;select=1,empty,overtype,warning=invalid characer,invalid=The value you entered isn't appropriate for the inpu";
var_s = var_s + "t mask <b>'<%mask%>'</b> specified for this field.";
com_Editor.Mask(var_s);
h = com_Items.AddItem("0123");
var_Editor1 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor1 = var_Editor1;
com_Editor1.EditType(8/*MaskType*/);
com_Editor1.Mask("!(999) 000 0000;2;;select=4");
h = com_Items.AddItem("0123");
var_Editor2 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor2 = var_Editor2;
com_Editor2.EditType(8/*MaskType*/);
com_Editor2.Mask("`Phone: `!(999) 000-0000");
h = com_Items.AddItem("(074) 876-1222");
var_Editor3 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor3 = var_Editor3;
com_Editor3.EditType(8/*MaskType*/);
com_Editor3.Mask("!(999) 000-0000;0");
}
|
842
|
Is it possible to display the ColorType fields using RGB format
![](images/exgridq842.png)
public void init()
{
COM com_Editor,com_Editor1,com_Editor2,com_Editor3,com_Editor4,com_Editor5,com_Editor6,com_Items;
anytype var_Editor,var_Editor1,var_Editor2,var_Editor3,var_Editor4,var_Editor5,var_Editor6,var_Items;
int h;
;
super();
var_Editor = COM::createFromObject(COM::createFromVariant(exgrid1.Columns().Add("Color"))).Editor(); com_Editor = var_Editor;
com_Editor.EditType(9/*ColorType*/);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem(COMVariant::createFromInt(255));
h = com_Items.AddItem(COMVariant::createFromInt(255));
var_Editor = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor = var_Editor;
com_Editor.EditType(9/*ColorType*/);
com_Editor.Mask("`RGB(`{0,255}\\,{0,255}\\,{0,255}`)`;;0");
h = com_Items.AddItem(COMVariant::createFromInt(255));
var_Editor1 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor1 = var_Editor1;
com_Editor1.EditType(9/*ColorType*/);
com_Editor1.Mask("`&H`XXXXXXXX`&`;;0;overtype,insertype,warning=Wrong!");
h = com_Items.AddItem(COMVariant::createFromInt(255));
var_Editor2 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor2 = var_Editor2;
com_Editor2.EditType(9/*ColorType*/);
com_Editor2.Mask("`0x`XX `0x`XX `0x`XX;;0;overtype,insertype,warning=Wrong!");
h = com_Items.AddItem(COMVariant::createFromInt(255));
var_Editor3 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor3 = var_Editor3;
com_Editor3.EditType(9/*ColorType*/);
com_Editor3.Mask("R{0,255} G{0,255} B{0,255};;0;overtype,insertype,warning=Wrong!");
h = com_Items.AddItem(COMVariant::createFromInt(255));
var_Editor4 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor4 = var_Editor4;
com_Editor4.EditType(9/*ColorType*/);
com_Editor4.Mask("`(hexa) RGB 0x`XXXXXX;;0;overtype,insertype,warning=Wrong!");
h = com_Items.AddItem(COMVariant::createFromInt(255));
var_Editor5 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor5 = var_Editor5;
com_Editor5.EditType(9/*ColorType*/);
com_Editor5.Mask("`(decimal) Red: `{0,255}` Green: `{0,255}` Blue: `{0,255};;0;overtype,insertype,warning=Wrong!");
h = com_Items.AddItem(COMVariant::createFromInt(255));
var_Editor6 = com_Items.CellEditor(h,COMVariant::createFromInt(0)); com_Editor6 = var_Editor6;
com_Editor6.EditType(9/*ColorType*/);
com_Editor6.Mask("`(combine) Red: `{0,255}` Green: 0x`XX` Blue: `{0,255};;0;overtype,insertype,warning=Wrong!");
}
|
841
|
How can I add the ExComboBox as an user editor
![](images/exgridq841.png)
// UserEditorClose event - Fired the user editor is about to be opened.
void onEvent_UserEditorClose(COM _Object,int _Item,int _ColIndex)
{
// Items.CellValue(Item,ColIndex) = Object.Value
;
}
// UserEditorOleEvent event - Occurs when an user editor fires an event.
void onEvent_UserEditorOleEvent(COM _Object,COM _Ev,COMVariant /*bool*/ _CloseEditor,int _Item,int _ColIndex)
{
;
print( _Ev );
}
// UserEditorOpen event - Occurs when an user editor is about to be opened.
void onEvent_UserEditorOpen(COM _Object,int _Item,int _ColIndex)
{
// Object.Value = Me.Items.CellValue(Item,ColIndex)
;
}
public void init()
{
COM com_ComboBox,com_Editor,com_Items,com_rs;
anytype rs,var_ComboBox,var_Editor,var_Items;
;
super();
exgrid1.BeginUpdate();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Exontrol.ComboBox")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(16/*UserEditorType*/);
com_Editor.UserEditor("Exontrol.ComboBox","");
// Add 'ExComboBox 1.0 Control Library(ExComboBox.dll)' reference to your project.
var_ComboBox = com_Editor.UserEditorObject(); com_ComboBox = var_ComboBox;
com_ComboBox.BeginUpdate();
com_ComboBox.Style(2/*DropDownList*/);
com_ComboBox.ColumnAutoResize(false);
// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
com_ComboBox.DataSource(rs);
com_ComboBox.MinHeightList(128);
com_ComboBox.SearchColumnIndex(0);
com_ComboBox.UseTabKey(false);
com_ComboBox.EndUpdate();
exgrid1.DrawGridLines(-2/*exRowLines*/);
exgrid1.DefaultItemHeight(21);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellEditorVisible(com_Items.AddItem(COMVariant::createFromInt(10248)),COMVariant::createFromInt(0),1/*exEditorVisible*/);
com_Items.CellEditorVisible(com_Items.AddItem(COMVariant::createFromInt(10249)),COMVariant::createFromInt(0),1/*exEditorVisible*/);
com_Items.CellEditorVisible(com_Items.AddItem(COMVariant::createFromInt(10250)),COMVariant::createFromInt(0),1/*exEditorVisible*/);
exgrid1.EndUpdate();
}
|
840
|
How can I add a header row
![](images/exgridq840.png)
public void init()
{
COM com_Items;
anytype var_Items;
int h;
;
super();
exgrid1.ShowLockedItems(true);
exgrid1.DrawGridLines(2/*exVLines*/);
exgrid1.Columns().Add("C1");
exgrid1.Columns().Add("C2");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.LockedItemCount(0/*exTop*/,1);
h = com_Items.LockedItem(0/*exTop*/,0);
com_Items.ItemBackColor(h,WinApi::RGB2int(128,128,128));
com_Items.ItemForeColor(h,WinApi::RGB2int(255,255,255));
com_Items.CellValue(h,COMVariant::createFromInt(0),"footer c1");
com_Items.CellValue(h,COMVariant::createFromInt(1),"footer c2");
com_Items.CellValue(com_Items.AddItem("cell"),COMVariant::createFromInt(1),"cell");
}
|
839
|
How can I add a footer row
![](images/exgridq839.png)
public void init()
{
COM com_Items;
anytype var_Items;
int h;
;
super();
exgrid1.ShowLockedItems(true);
exgrid1.DrawGridLines(2/*exVLines*/);
exgrid1.Columns().Add("C1");
exgrid1.Columns().Add("C2");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.LockedItemCount(2/*exBottom*/,1);
h = com_Items.LockedItem(2/*exBottom*/,0);
com_Items.ItemBackColor(h,WinApi::RGB2int(128,128,128));
com_Items.ItemForeColor(h,WinApi::RGB2int(255,255,255));
com_Items.CellValue(h,COMVariant::createFromInt(0),"footer c1");
com_Items.CellValue(h,COMVariant::createFromInt(1),"footer c2");
com_Items.CellValue(com_Items.AddItem("cell"),COMVariant::createFromInt(1),"cell");
}
|
838
|
How can I programmatically add more columns to the sort bar and other to be sorted, but not included in the sort bar
![](images/exgridq838.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
exgrid1.SortBarVisible(true);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add(0);
com_Columns.Add(1);
com_Columns.Add(2);
com_Columns.Add(3);
com_Columns.Add(4);
exgrid1.Layout("multiplesort=\"C3:1 C4:2\";singlesort=\"C2:1\"");
}
|
837
|
How can I fix a column, while other sizable and fill the control's client
![](images/exgridq837.png)
public void init()
{
COM com_Column;
anytype var_Column;
;
super();
exgrid1.ColumnAutoResize(true);
exgrid1.Columns().Add("Sizable");
var_Column = COM::createFromVariant(exgrid1.Columns().Add("F")); com_Column = var_Column;
com_Column.AllowSizing(false);
com_Column.Width(16);
}
|
836
|
Is it possible to use empty values on a PickEditType editor (method 2)
![](images/exgridq836.png)
public void init()
{
COM com_Editor,com_Items;
anytype var_Editor,var_Items;
;
super();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("DropDown")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(14/*PickEditType*/);
com_Editor.AddItem(0,"");
com_Editor.AddItem(1,"The first item");
com_Editor.AddItem(2,"The second item");
com_Editor.AddItem(3,"The third item");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("The first item");
com_Items.AddItem("");
com_Items.AddItem("The third item");
}
|
835
|
Is it possible to use empty values on a PickEditType editor (method 1)
![](images/exgridq835.png)
public void init()
{
COM com_Editor,com_Items;
anytype var_Editor,var_Items;
;
super();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("DropDown")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(14/*PickEditType*/);
com_Editor.Option(54/*exPickAllowEmpty*/,COMVariant::createFromBoolean(true));
com_Editor.AddItem(1,"The first item");
com_Editor.AddItem(2,"The second item");
com_Editor.AddItem(3,"The third item");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("The first item");
com_Items.AddItem("");
com_Items.AddItem("The third item");
}
|
834
|
How can I specify an unselectable cell
![](images/exgridq834.png)
public void init()
{
COM com_Columns,com_Items;
anytype var_Columns,var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("C1");
com_Columns.Add("C2");
com_Columns.Add("C3");
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("unselectable item");
com_Items.CellValue(h,COMVariant::createFromInt(1),"unselectable item");
com_Items.CellValue(h,COMVariant::createFromInt(2),"unselectable item");
com_Items.SelectableItem(h,false);
h = com_Items.AddItem("selectable cell");
com_Items.CellValue(h,COMVariant::createFromInt(1),"unselectable cell");
com_Items.CellEnabled(h,COMVariant::createFromInt(1),false);
com_Items.CellForeColor(h,COMVariant::createFromInt(1),WinApi::RGB2int(0,0,0));
com_Items.CellValue(h,COMVariant::createFromInt(2),"disabled cell");
com_Items.CellEnabled(h,COMVariant::createFromInt(2),false);
h = com_Items.AddItem("disabled item");
com_Items.CellValue(h,COMVariant::createFromInt(1),"disabled item");
com_Items.CellValue(h,COMVariant::createFromInt(2),"disabled item");
com_Items.EnableItem(h,false);
com_Items.SelectableItem(h,false);
exgrid1.EndUpdate();
}
|
833
|
Is it possible to edit a float number without using of e/E/d/D (exponent) and +/- (signs) characters
![](images/exgridq833.png)
public void init()
{
COM com_Editor;
anytype var_Editor;
;
super();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Edit")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(1/*EditType*/);
com_Editor.Numeric(770/*exDisableSigns | exFloatInteger*/);
exgrid1.Items().AddItem(COMVariant::createFromReal(1.22));
}
|
832
|
How can I edit a float number with no using of e/E/d/D and + character
![](images/exgridq832.png)
public void init()
{
COM com_Editor;
anytype var_Editor;
;
super();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Edit")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(1/*EditType*/);
com_Editor.Numeric(258/*exDisablePlus | exFloatInteger*/);
exgrid1.Items().AddItem(COMVariant::createFromReal(1.22));
}
|
831
|
Is it possible to edit a float number with no using of e/E/d/D (exponent) characters
![](images/exgridq831.png)
public void init()
{
COM com_Editor;
anytype var_Editor;
;
super();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Edit")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(1/*EditType*/);
com_Editor.Numeric(2/*exFloatInteger*/);
exgrid1.Items().AddItem(COMVariant::createFromReal(1.22));
}
|
830
|
How can I edit an integer with no using of +/- signs
![](images/exgridq830.png)
public void init()
{
COM com_Editor;
anytype var_Editor;
;
super();
var_Editor = COM::createFromVariant(exgrid1.Columns().Add("Edit")).Editor(); com_Editor = var_Editor;
com_Editor.EditType(1/*EditType*/);
com_Editor.Numeric(1023/*0x3ff | exDisableSigns | exFloatInteger | exFloat*/);
exgrid1.Items().AddItem(COMVariant::createFromInt(1));
}
|
829
|
When I'm trying to show string with "line break" character (vbCrLF) in a textbox, it shows 2 squares. Is there any way to hide these squares
![](images/exgridq829.png)
public void init()
{
COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
;
super();
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Value");
var_Column = COM::createFromVariant(com_Columns.Add("CellSingleLine = False")); com_Column = var_Column;
com_Column.ComputedField("%0");
com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromBoolean(false));
var_Column1 = COM::createFromVariant(com_Columns.Add("FormatColumn/replace CRLF")); com_Column1 = var_Column1;
com_Column1.ComputedField("%0");
com_Column1.FormatColumn("value replace `\\r\\n` with ``");
var_Column2 = COM::createFromVariant(com_Columns.Add("FormatColumn/replace TAB,CRLF")); com_Column2 = var_Column2;
com_Column2.ComputedField("%0");
com_Column2.FormatColumn("(value replace `\\t` with ``) replace `\\r\\n` with ``");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("a\\ta\\r\\nb\\tb");
}
|
828
|
Is there any way to "unselect" radio group
![](images/exgridq828.png)
// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void onEvent_DblClick(int _Shift,int _X,int _Y)
{
COM com_Items;
anytype var_Items;
int h;
;
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.CellChecked(1234);
com_Items.CellHasCheckBox(COMVariant::createFromInt(0),h,true);
com_Items.CellState(COMVariant::createFromInt(0),h,0);
com_Items.CellHasCheckBox(COMVariant::createFromInt(0),h,false);
}
// SelectionChanged event - Fired after a new item has been selected.
void onEvent_SelectionChanged()
{
COM com_Items;
anytype var_Items;
;
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.CellState(com_Items.FocusItem(),COMVariant::createFromInt(0),1);
}
public void init()
{
COM com_Items;
anytype var_Items;
int h;
;
super();
exgrid1.MarkSearchColumn(false);
exgrid1.SelBackColor(WinApi::RGB2int(255,255,128));
exgrid1.SelForeColor(WinApi::RGB2int(0,0,0));
exgrid1.Columns().Add("Default");
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("Radio 1");
com_Items.CellHasRadioButton(h,COMVariant::createFromInt(0),true);
com_Items.CellRadioGroup(h,COMVariant::createFromInt(0),1234);
h = com_Items.AddItem("Radio 2");
com_Items.CellHasRadioButton(h,COMVariant::createFromInt(0),true);
com_Items.CellRadioGroup(h,COMVariant::createFromInt(0),1234);
com_Items.CellState(h,COMVariant::createFromInt(0),1);
h = com_Items.AddItem("Radio 3");
com_Items.CellHasRadioButton(h,COMVariant::createFromInt(0),true);
com_Items.CellRadioGroup(h,COMVariant::createFromInt(0),1234);
}
|
827
|
The Column.Alignment property does not seem to work for cells with images in them. What can be done
![](images/exgridq827.png)
public void init()
{
COM com_Column,com_Items;
anytype var_Column,var_Items;
str var_s;
;
super();
exgrid1.BeginUpdate();
var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
exgrid1.Images(COMVariant::createFromStr(var_s));
exgrid1.TreeColumnIndex(-1);
exgrid1.DrawGridLines(-1/*exAllLines*/);
exgrid1.HeaderHeight(24);
exgrid1.DefaultItemHeight(24);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Image")); com_Column = var_Column;
com_Column.AllowSizing(false);
com_Column.Width(32);
com_Column.HTMLCaption("<img>1</img>");
com_Column.HeaderAlignment(1/*CenterAlignment*/);
com_Column.Alignment(1/*CenterAlignment*/);
com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
exgrid1.Columns().Add("Rest");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("<img>1</img>");
com_Items.AddItem("<img>2</img>");
com_Items.AddItem("<img>3</img>");
exgrid1.EndUpdate();
}
|
826
|
Can I change the format of date to be shown in the control
![](images/exgridq826.png)
public void init()
{
COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
str var_s;
;
super();
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Default");
var_Column = COM::createFromVariant(com_Columns.Add("Format.1")); com_Column = var_Column;
com_Column.ComputedField("%0");
com_Column.FormatColumn("dateF(value) replace `/` with `-`");
var_Column1 = COM::createFromVariant(com_Columns.Add("Format.2")); com_Column1 = var_Column1;
com_Column1.ComputedField("%0");
com_Column1.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
com_Column1.FormatColumn("`<b>`+ shortdate(value) + `</b> ` + timeF(value)");
var_Column2 = COM::createFromVariant(com_Columns.Add("Format.3")); com_Column2 = var_Column2;
com_Column2.ComputedField("%0");
com_Column2.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
var_s = "( dateF(value) replace `/` with `-` ) + ` <b>`+ ( weekday(value) case ( 0 : `Su`; 1 : `Mo`; 2 : `Tu`; 3 : `We`; 4 : `Th`; 5 : `F";
var_s = var_s + "r`; 6 : `Sa`) )";
com_Column2.FormatColumn(var_s);
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem(COMVariant::createFromUtcDateTime(str2Datetime("1/1/2001 10:00:00",213)));
com_Items.AddItem(COMVariant::createFromUtcDateTime(str2Datetime("1/2/2001 10:00:00",213)));
}
|
825
|
How do I arrange my columns on multiple levels
![](images/exgridq825.png)
public void init()
{
COM com_Column,com_Column1,com_Column2,com_Columns;
anytype var_Column,var_Column1,var_Column2,var_Columns;
;
super();
exgrid1.BeginUpdate();
exgrid1.ColumnAutoResize(false);
exgrid1.DrawGridLines(-1/*exAllLines*/);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
var_Column = COM::createFromVariant(com_Columns.Add("C0")); com_Column = var_Column;
com_Column.ExpandColumns("1,2");
com_Column.DisplayExpandButton(false);
com_Columns.Add("C1");
com_Columns.Add("C2");
com_Columns.Add("C3");
var_Column1 = COM::createFromVariant(com_Columns.Add("C4")); com_Column1 = var_Column1;
com_Column1.ExpandColumns("5,6");
com_Column1.DisplayExpandButton(false);
com_Columns.Add("C5");
var_Column2 = COM::createFromVariant(com_Columns.Add("C6")); com_Column2 = var_Column2;
com_Column2.ExpandColumns("6,7");
com_Column2.DisplayExpandButton(false);
com_Columns.Add("C7");
exgrid1.EndUpdate();
}
|
824
|
Does your control support expandable header or columns, so I can arrange it on multiple levels
![](images/exgridq824.png)
public void init()
{
COM com_Column,com_Column1,com_Columns;
anytype var_Column,var_Column1,var_Columns;
;
super();
exgrid1.BeginUpdate();
exgrid1.DrawGridLines(-1/*exAllLines*/);
exgrid1.BackColorLevelHeader(WinApi::RGB2int(240,240,240));
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
var_Column = COM::createFromVariant(com_Columns.Add("Photo")); com_Column = var_Column;
com_Column.AllowSizing(false);
com_Column.Width(32);
com_Columns.Add("Personal Info");
com_Columns.Add("Title");
com_Columns.Add("Name");
com_Columns.Add("First");
com_Columns.Add("Last");
com_Columns.Add("Address");
var_Column1 = COM::createFromObject(com_Columns.Item("Personal Info")); com_Column1 = var_Column1;
com_Column1.ExpandColumns("2,3");
var_Column1 = com_Columns.Item("Name"); com_Column1 = var_Column1;
com_Column1.ExpandColumns("4,5");
com_Column1.Expanded(false);
exgrid1.EndUpdate();
}
|
823
|
How can I use the MinWidthAutoResize/MaxWidthAutoResize
![](images/exgridq823.png)
public void init()
{
COM com_Column,com_rs;
anytype rs,var_Column;
;
super();
exgrid1.BeginUpdate();
exgrid1.ColumnAutoResize(false);
// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
exgrid1.DataSource(rs);
var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
com_Column.MaxWidthAutoResize(32);
com_Column.WidthAutoResize(true);
exgrid1.EndUpdate();
}
|
822
|
Does your control support subscript or superscript, in HTML captions
![](images/exgridq822.png)
public void init()
{
COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
int h;
;
super();
exgrid1.ColumnAutoResize(false);
exgrid1.HeaderHeight(28);
exgrid1.DefaultItemHeight(24);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
var_Column = COM::createFromVariant(com_Columns.Add("Column 1")); com_Column = var_Column;
com_Column.HTMLCaption("Column <b><off 2><font ;6>1");
com_Column.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
var_Column1 = COM::createFromVariant(com_Columns.Add("Column 2")); com_Column1 = var_Column1;
com_Column1.HTMLCaption("Column <b><off 2><font ;6>2");
com_Column1.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
var_Column2 = COM::createFromVariant(com_Columns.Add("Column 3")); com_Column2 = var_Column2;
com_Column2.HTMLCaption("Column <b><off 2><font ;6>3");
com_Column2.Def(17/*exCellValueFormat*/,COMVariant::createFromInt(1));
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("Item <font ;6><off 4>1");
com_Items.CellValue(h,COMVariant::createFromInt(1),"Item <font ;6><off -6>2");
com_Items.CellValue(h,COMVariant::createFromInt(2),"Item <b><font ;6><off -6>2<off 4>3<off 4>1");
}
|
821
|
How can I specify the splited cell's background color
![](images/exgridq821.png)
public void init()
{
COM com_Column,com_Items;
COMVariant var_SplitCell;
anytype var_Column,var_Items;
int h;
;
super();
exgrid1.MarkSearchColumn(false);
exgrid1.TreeColumnIndex(-1);
COM::createFromVariant(exgrid1.Columns().Add("1")).Def(4/*exCellBackColor*/,COMVariant::createFromInt(255));
var_Column = COM::createFromVariant(exgrid1.Columns().Add("2")); com_Column = var_Column;
com_Column.Width(32);
com_Column.AllowSizing(false);
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("The Item's background color inherits the Column.Def(exCellBackColor)");
com_Items.ItemDivider(h,0);
h = com_Items.AddItem("The Item's background color inherits the CellBackColor()");
com_Items.ItemDivider(h,0);
com_Items.CellBackColor(h,WinApi::RGB2int(0,255,0));
h = com_Items.AddItem("The Item's background color inherits the CellBackColor(), while the split inherits from the Column.Def(exCellBackColor) ");
com_Items.ItemDivider(h,0);
com_Items.CellBackColor(h,WinApi::RGB2int(0,255,0));
var_SplitCell = com_Items.SplitCell(h,COMVariant::createFromInt(0));
h = com_Items.AddItem("The Item's background color inherits the CellBackColor()");
com_Items.ItemDivider(h,0);
com_Items.CellBackColor(h,WinApi::RGB2int(0,255,0));
com_Items.CellBackColor(COMVariant::createFromInt(0),com_Items.SplitCell(h,COMVariant::createFromInt(0)),WinApi::RGB2int(0,0,255));
}
|
820
|
How can I specify a fixed width for a column
![](images/exgridq820.png)
public void init()
{
COM com_Column,com_Column1;
anytype var_Column,var_Column1;
;
super();
exgrid1.MarkSearchColumn(false);
exgrid1.TreeColumnIndex(-1);
exgrid1.ColumnAutoResize(false);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("C1")); com_Column = var_Column;
com_Column.Width(17);
com_Column.AllowSizing(false);
var_Column1 = COM::createFromVariant(exgrid1.Columns().Add("C2")); com_Column1 = var_Column1;
com_Column1.Width(17);
com_Column1.AllowSizing(false);
exgrid1.Columns().Add("Other");
exgrid1.ColumnAutoResize(true);
}
|
819
|
How can I split a cell in three parts
![](images/exgridq819.png)
public void init()
{
COM com_Items;
anytype var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
exgrid1.DrawGridLines(-1/*exAllLines*/);
exgrid1.Columns().Add("Default");
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("entire");
h = com_Items.AddItem("split 1");
h = com_Items.SplitCell(h,COMVariant::createFromInt(0));
com_Items.CellValue(COMVariant::createFromInt(0),h,"split 2");
h = com_Items.SplitCell(COMVariant::createFromInt(0),h);
com_Items.CellValue(COMVariant::createFromInt(0),h,"split 3");
h = com_Items.AddItem("entire");
exgrid1.EndUpdate();
}
|
818
|
How can I find if there is any filter applied to the control
![](images/exgridq818.png)
// FilterChange event - Occurs when filter was changed.
void onEvent_FilterChange()
{
;
print( "If negative, the filter is present, else not" );
print( exgrid1.Items().VisibleItemCount() );
}
public void init()
{
COM com_Column,com_Items;
anytype var_Column,var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
exgrid1.TreeColumnIndex(-1);
exgrid1.FilterInclude(4/*exMatchingItemsOnly*/);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Column")); com_Column = var_Column;
com_Column.DisplayFilterButton(true);
com_Column.FilterType(240/*exFilter*/);
com_Column.Filter("C1");
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("R1");
com_Items.InsertItem(h,,"C1");
com_Items.InsertItem(h,,"C2");
com_Items.ExpandItem(h,true);
h = com_Items.AddItem("R2");
com_Items.InsertItem(h,,"C1");
com_Items.InsertItem(h,,"C2");
exgrid1.ApplyFilter();
exgrid1.EndUpdate();
}
|
817
|
How can I prevent showing the lines for the hierarchy while using the exMatchingItemsOnly option
![](images/exgridq817.png)
public void init()
{
COM com_Column,com_Items;
anytype var_Column,var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
exgrid1.TreeColumnIndex(-1);
exgrid1.FilterInclude(4/*exMatchingItemsOnly*/);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Column")); com_Column = var_Column;
com_Column.DisplayFilterButton(true);
com_Column.FilterType(240/*exFilter*/);
com_Column.Filter("C1|C2");
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("R1");
com_Items.InsertItem(h,,"C1");
com_Items.InsertItem(h,,"C2");
com_Items.ExpandItem(h,true);
h = com_Items.AddItem("R2");
com_Items.InsertItem(h,,"C1");
com_Items.InsertItem(h,,"C2");
exgrid1.ApplyFilter();
exgrid1.EndUpdate();
}
|
816
|
Is there any method to get only the matched items and not the items with his parent
![](images/exgridq816.png)
public void init()
{
COM com_Column,com_Items;
anytype var_Column,var_Items;
int h;
;
super();
exgrid1.BeginUpdate();
exgrid1.LinesAtRoot(-1/*exLinesAtRoot*/);
exgrid1.FilterInclude(4/*exMatchingItemsOnly*/);
var_Column = COM::createFromVariant(exgrid1.Columns().Add("Column")); com_Column = var_Column;
com_Column.DisplayFilterButton(true);
com_Column.FilterType(240/*exFilter*/);
com_Column.Filter("C1|C2");
var_Items = exgrid1.Items(); com_Items = var_Items;
h = com_Items.AddItem("R1");
com_Items.InsertItem(h,,"C1");
com_Items.InsertItem(h,,"C2");
com_Items.ExpandItem(h,true);
h = com_Items.AddItem("R2");
com_Items.InsertItem(h,,"C1");
com_Items.InsertItem(h,,"C2");
exgrid1.ApplyFilter();
exgrid1.EndUpdate();
}
|
815
|
Is there any property I can save and restore automatically the current setting, column position, size, and so on (2)
![](images/exgridq815.png)
public void init()
{
COM com_Items;
anytype var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.Columns().Add("Column");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("Item 1");
com_Items.AddItem("Item 2");
com_Items.AddItem("Item 3");
exgrid1.Layout("Select=\"0\";SingleSort=\"C0:2\";Columns=1");
exgrid1.EndUpdate();
}
|
814
|
Is there any property I can save and restore automatically the current setting, column position, size, and so on (1)
![](images/exgridq814.png)
public void init()
{
COM com_Items;
anytype var_Items;
str var_s;
;
super();
exgrid1.BeginUpdate();
exgrid1.Columns().Add("Column");
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.AddItem("Item 1");
com_Items.AddItem("Item 2");
com_Items.AddItem("Item 3");
var_s = "gBjAAwAAuABmABpABsAB0ABlAByhoAPIAOEPAA9gYABoABQAgUEg0XN4AOcJicKkpujMbjsfkMFk0YhkQgUOjUEl8gjcGO0ok8KMULjEaGMcj08kQAO8oMkTNEtGwAGQ";
var_s = var_s + "Aqc7gUlhh1ABtAEsk9GpEfhElgVcsMupNlnlonlaAFcr0shUsp8QPEtnVJqJhmcIhUMh0QiU5sYAqMngUSuEMw07k8Qv0SgVRrNEuVflF2jF5x9JyNEm0TjQijemyE0j";
var_s = var_s + "E3t+YruauoAu4Az1qj9BzRn0UzksSnAA0xDjY6qnAw8OiUQ0dwzN0zWz2t7j8/xURAGNvWH6k8xlEhklhEI0O/6QAgI=";
exgrid1.Layout(var_s);
exgrid1.EndUpdate();
}
|
813
|
I have noticed that the column's header is changed once the cursor hovers it. Is it possible to change that visual appearance
![](images/exgridq813.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
exgrid1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Column 1");
com_Columns.Add("Column 2");
exgrid1.BackColorHeader(0x1000000);
exgrid1.Background(32/*exCursorHoverColumn*/,0x12d86ff);
}
|
812
|
Is it possible to change the visual appearance of the columns selector/floating bar(3)
![](images/exgridq812.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
exgrid1.ColumnAutoResize(false);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Column 1");
COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
exgrid1.VisualAppearance().Add(2,"c:\\exontrol\\images\\normal.ebn");
exgrid1.VisualAppearance().Add(3,"c:\\exontrol\\images\\pushed.ebn");
exgrid1.Background(92/*exColumnsFloatAppearance*/,0x2000000);
exgrid1.Background(87/*exColumnsFloatBackColor*/,0x3000000);
exgrid1.Background(93/*exColumnsFloatCaptionBackColor*/,WinApi::RGB2int(246,245,240));
exgrid1.ColumnsFloatBarVisible(true);
}
|
811
|
Is it possible to change the visual appearance of the columns selector/floating bar(2)
![](images/exgridq811.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
exgrid1.ColumnAutoResize(false);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Column 1");
COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
exgrid1.VisualAppearance().Add(3,"c:\\exontrol\\images\\pushed.ebn");
exgrid1.Background(87/*exColumnsFloatBackColor*/,0x3000000);
exgrid1.ColumnsFloatBarVisible(true);
}
|
810
|
Is it possible to change the visual appearance of the columns selector/floating bar(1)
![](images/exgridq810.png)
public void init()
{
;
super();
exgrid1.VisualAppearance().Add(2,"c:\\exontrol\\images\\normal.ebn");
exgrid1.Background(92/*exColumnsFloatAppearance*/,0x2000000);
exgrid1.Background(87/*exColumnsFloatBackColor*/,WinApi::RGB2int(246,245,240));
exgrid1.Background(93/*exColumnsFloatCaptionBackColor*/,WinApi::RGB2int(246,245,240));
exgrid1.ColumnsFloatBarVisible(true);
}
|
809
|
I am using the ColumnsFloatBarVisible property on True, but still not able to add any column on that list
![](images/exgridq809.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
exgrid1.ColumnAutoResize(false);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Column 1");
COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
exgrid1.ColumnsFloatBarVisible(true);
}
|
808
|
Is it possible to list a column to columns selector/floating bar, but still user can use it
![](images/exgridq808.png)
public void init()
{
COM com_Column,com_Columns;
anytype var_Column,var_Columns;
;
super();
exgrid1.ColumnAutoResize(false);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Column 1");
COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
var_Column = COM::createFromVariant(com_Columns.Add("Column 3")); com_Column = var_Column;
com_Column.Visible(false);
com_Column.Enabled(false);
exgrid1.ColumnsFloatBarVisible(true);
}
|
807
|
How can I prevent a specific column not to be listed in the columns selector/floating bar
![](images/exgridq807.png)
public void init()
{
COM com_Column,com_Columns;
anytype var_Column,var_Columns;
;
super();
exgrid1.ColumnAutoResize(false);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Column 1");
COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
var_Column = COM::createFromVariant(com_Columns.Add("Column 3")); com_Column = var_Column;
com_Column.Visible(false);
com_Column.AllowDragging(false);
exgrid1.ColumnsFloatBarVisible(true);
}
|
806
|
Is it possible to change the "Columns" caption being shown in the columns selector/floating bar
![](images/exgridq806.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
exgrid1.ColumnAutoResize(false);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Column 1");
COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
exgrid1.Description(26/*exColumnsFloatBar*/,"Hidden Columns");
exgrid1.ColumnsFloatBarVisible(true);
}
|
805
|
How can I show the columns selector, so the user can drag and drop columns to the view
![](images/exgridq805.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
exgrid1.ColumnAutoResize(false);
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Column 1");
COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
exgrid1.ColumnsFloatBarVisible(true);
}
|
804
|
The column's header is changed while the cursor hovers it. Is it possible to prevent that
![](images/exgridq804.png)
public void init()
{
COM com_Columns;
anytype var_Columns;
;
super();
var_Columns = exgrid1.Columns(); com_Columns = var_Columns;
com_Columns.Add("Column 1");
com_Columns.Add("Column 2");
exgrid1.Background(32/*exCursorHoverColumn*/,-1);
}
|
803
|
I noticed that when grouping on a field, its details are always expanded. Is it possible to show collapsed by default (method 2)
![](images/exgridq803.png)
public void init()
{
COM com_Column,com_rs;
anytype rs,var_Column;
;
super();
exgrid1.BeginUpdate();
exgrid1.ColumnAutoResize(false);
// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
exgrid1.DataSource(rs);
exgrid1.SortBarVisible(true);
exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
exgrid1.AllowGroupBy(true);
var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
com_Column.SortOrder(1/*SortAscending*/);
exgrid1.EndUpdate();
exgrid1.BeginUpdate();
exgrid1.EnsureVisibleColumn(COMVariant::createFromInt(0));
exgrid1.Items().ExpandItem(0,false);
exgrid1.EndUpdate();
}
|
802
|
I noticed that when grouping on a field, its details are always expanded. Is it possible to show collapsed by default (method 1)
![](images/exgridq802.png)
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void onEvent_AddGroupItem(int _Item)
{
;
exgrid1.Items().ExpandItem(_Item,false);
}
public void init()
{
COM com_Column,com_rs;
anytype rs,var_Column;
;
super();
exgrid1.BeginUpdate();
exgrid1.ColumnAutoResize(false);
// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
exgrid1.DataSource(rs);
exgrid1.SortBarVisible(true);
exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
exgrid1.AllowGroupBy(true);
var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
com_Column.SortOrder(1/*SortAscending*/);
exgrid1.EndUpdate();
}
|
801
|
Is there a possibility to expand / collapse all groups (or group by group) at runtime with a method (equivalent to pressing the + or - button in the group header)
![](images/exgridq801.png)
public void init()
{
COM com_Column,com_Items,com_rs;
anytype rs,var_Column,var_Items;
;
super();
exgrid1.BeginUpdate();
exgrid1.ColumnAutoResize(false);
// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExGrid\\Sample\\Access\\misc.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
exgrid1.DataSource(rs);
exgrid1.SortBarVisible(true);
exgrid1.SortBarCaption("Drag a <b>column</b> header here to group by that column.");
exgrid1.AllowGroupBy(true);
var_Column = COM::createFromObject(exgrid1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
com_Column.SortOrder(1/*SortAscending*/);
exgrid1.EndUpdate();
exgrid1.EnsureVisibleColumn(COMVariant::createFromInt(0));
exgrid1.BeginUpdate();
var_Items = exgrid1.Items(); com_Items = var_Items;
com_Items.ExpandItem(com_Items.RootItem(0),false);
com_Items.ExpandItem(com_Items.RootItem(1),false);
com_Items.ExpandItem(com_Items.RootItem(2),false);
exgrid1.EndUpdate();
}
|